home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / S-Sh / ScrollBar.cpt / ScrollBar Stack / card_8553.txt < prev    next >
Text File  |  1990-04-17  |  7KB  |  243 lines

  1. -- card: 8553 from stack: in
  2. -- bmap block id: 5186
  3. -- flags: 0000
  4. -- background id: 6693
  5. -- name: 
  6. ----- HyperTalk script -----
  7. on openCard
  8.   global lockInit
  9.   if lockInit then exit openCard
  10.  
  11.   send initBar to cd btn "Scroller"
  12. end openCard
  13.  
  14.  
  15.  
  16. -- part 6 (field)
  17. -- low flags: 01
  18. -- high flags: 0001
  19. -- rect: left=224 top=43 right=250 bottom=300
  20. -- title width / last selected line: 0
  21. -- icon id / first selected line: 0 / 0
  22. -- text alignment: 0
  23. -- font id: 3
  24. -- text size: 12
  25. -- style flags: 0
  26. -- line height: 16
  27. -- part name: 
  28.  
  29.  
  30. -- part 1 (field)
  31. -- low flags: 01
  32. -- high flags: 0007
  33. -- rect: left=37 top=46 right=128 bottom=290
  34. -- title width / last selected line: 0
  35. -- icon id / first selected line: 0 / 0
  36. -- text alignment: 0
  37. -- font id: 33
  38. -- text size: 12
  39. -- style flags: 0
  40. -- line height: 16
  41. -- part name: Scroll1
  42.  
  43.  
  44. -- part 2 (field)
  45. -- low flags: 01
  46. -- high flags: 0007
  47. -- rect: left=37 top=127 right=189 bottom=301
  48. -- title width / last selected line: 0
  49. -- icon id / first selected line: 0 / 0
  50. -- text alignment: 0
  51. -- font id: 4
  52. -- text size: 9
  53. -- style flags: 0
  54. -- line height: 12
  55. -- part name: Scroll2
  56.  
  57.  
  58. -- part 4 (field)
  59. -- low flags: 01
  60. -- high flags: 0007
  61. -- rect: left=37 top=188 right=250 bottom=234
  62. -- title width / last selected line: 0
  63. -- icon id / first selected line: 0 / 0
  64. -- text alignment: 0
  65. -- font id: 3
  66. -- text size: 9
  67. -- style flags: 0
  68. -- line height: 12
  69. -- part name: Scroll3
  70.  
  71.  
  72. -- part 5 (button)
  73. -- low flags: 00
  74. -- high flags: 0000
  75. -- rect: left=22 top=46 right=250 bottom=38
  76. -- title width / last selected line: 0
  77. -- icon id / first selected line: 0 / 0
  78. -- text alignment: 1
  79. -- font id: 0
  80. -- text size: 12
  81. -- style flags: 0
  82. -- line height: 16
  83. -- part name: Scroller
  84. ----- HyperTalk script -----
  85. on mouseEnter
  86.   global Scale1, Scale2, Scale3, Range, Page
  87.  
  88.   put the scroll of cd fld "Scroll1" into snum
  89.   put round(snum/Scale1) into thumb
  90.   put ScrollBar(false, true, true, 0, Range, thumb, Page) into thumb
  91.   lock screen
  92.   set the scroll of cd fld "Scroll1" to thumb * Scale1
  93.   set the scroll of cd fld "Scroll2" to thumb * Scale2
  94.   set the scroll of cd fld "Scroll3" to thumb * Scale3
  95.   unlock screen
  96. end mouseEnter
  97.  
  98. on trackScroll
  99.   global ScrollValue, Scale1, Scale2, Scale3
  100.  
  101.   lock screen
  102.   set the scroll of cd fld "Scroll1" to ScrollValue * Scale1
  103.   set the scroll of cd fld "Scroll2" to ScrollValue * Scale2
  104.   set the scroll of cd fld "Scroll3" to ScrollValue * Scale3
  105.   unlock screen
  106. end trackScroll
  107.  
  108. on initBar
  109.   global Scale1, Scale2, Scale3, Range, Page
  110.  
  111.   lock screen
  112.   put the textHeight of cd fld "Scroll1" into Scale1
  113.   put the textHeight of cd fld "Scroll2" into Scale2
  114.   put the textHeight of cd fld "Scroll3" into Scale3
  115.   set the scroll of cd fld "Scroll1" to 0
  116.   set the scroll of cd fld "Scroll2" to 0
  117.   set the scroll of cd fld "Scroll3" to 0
  118.   put the number of lines in cd fld "Scroll1" into lnum
  119.   put the height of cd fld "Scroll1" into height
  120.   put lnum - trunc(height/Scale1) into Range
  121.   put lnum - range into Page
  122.   put ScrollBar(false, true, true, 0, Range, 0, -1) into it
  123. end initBar
  124.  
  125.  
  126.  
  127. -- part 7 (field)
  128. -- low flags: 01
  129. -- high flags: 0001
  130. -- rect: left=17 top=250 right=271 bottom=300
  131. -- title width / last selected line: 0
  132. -- icon id / first selected line: 0 / 0
  133. -- text alignment: 0
  134. -- font id: 3
  135. -- text size: 12
  136. -- style flags: 0
  137. -- line height: 16
  138. -- part name: 
  139.  
  140.  
  141. -- part 8 (field)
  142. -- low flags: 01
  143. -- high flags: 0000
  144. -- rect: left=308 top=116 right=270 bottom=494
  145. -- title width / last selected line: 0
  146. -- icon id / first selected line: 0 / 0
  147. -- text alignment: 0
  148. -- font id: 33
  149. -- text size: 12
  150. -- style flags: 0
  151. -- line height: 15
  152. -- part name: 
  153.  
  154.  
  155. -- part 9 (field)
  156. -- low flags: 81
  157. -- high flags: 0007
  158. -- rect: left=15 top=15 right=273 bottom=497
  159. -- title width / last selected line: 0
  160. -- icon id / first selected line: 0 / 0
  161. -- text alignment: 0
  162. -- font id: 4
  163. -- text size: 9
  164. -- style flags: 0
  165. -- line height: 12
  166. -- part name: Script
  167.  
  168.  
  169. -- part contents for card part 1
  170. ----- text -----
  171. ScrollBar() may be used to implement 
  172. multiple scrolling fields. To do this 
  173. set doCallBack to true and write a 
  174. trackScroll handler to read the 
  175. current thumb value and adjust the 
  176. scroll value of your fields. To achieve 
  177. a clean scroll lock the screen within 
  178. your trackScroll handler before 
  179. adjusting the scroll values and unlock 
  180. it again after. ScrollBar() will set 
  181. things up so that this lock/unlock will 
  182. not destroy the scroll bar picture. For 
  183. the best effect use a mouseEnter 
  184. handler to invoke ScrollBar() as this 
  185. will provide a quick response to 
  186. mouse clicks in the scroll bar.
  187.  
  188. -- part contents for card part 2
  189. ----- text -----
  190. ScrollBar() may be used to implement multiple scrolling fields. To do this set doCallBack to true and write a trackScroll handler to read the
  191. current thumb value and adjust the scroll value of your fields. To achieve a clean scroll lock the screen within your trackScroll handler before adjusting the scroll values and unlock it again after. ScrollBar() will set things up so that this lock/unlock will not destroy the scroll bar picture. For the best effect use a mouseEnter handler to invoke ScrollBar() as this will provide a quick response to
  192. mouse clicks in the scroll bar.
  193.  
  194. -- part contents for card part 4
  195. ----- text -----
  196. ScrollBar() may be used to implement multiple scrolling fields. To do this
  197. set doCallBack to true and write a trackScroll handler to read the current thumb value and adjust the scroll value of your fields. To achieve a clean scroll lock the screen within your trackScroll handler before adjusting the scroll values and unlock it again after. ScrollBar() will set things up so that this lock/unlock will not destroy the scroll bar picture. For the best effect use a mouseEnter handler to invoke ScrollBar() as this will provide a quick response to mouse clicks in the scroll bar.
  198.  
  199. -- part contents for card part 8
  200. ----- text -----
  201. Setting doPaint true gives the best √¶sthetic effect but is slowed down by the HyperCard painting, this is the cause of the delay when the mouse leaves the scroll region. Using a mouseEnter handler causes the cursor to change to an arrow while in the scroll region.
  202.  
  203. -- part contents for card part 9
  204. ----- text -----
  205. Script of the scroll bar button:
  206.  
  207. on mouseEnter
  208.   global Scale1, Scale2, Scale3, Range, Page
  209.   
  210.   put the scroll of cd fld "Scroll1" into snum
  211.   put round(snum/Scale1) into thumb
  212.   put ScrollBar(false, true, true, 0, Range, thumb, Page) into thumb
  213.   lock screen
  214.   set the scroll of cd fld "Scroll1" to thumb * Scale1
  215.   set the scroll of cd fld "Scroll2" to thumb * Scale2
  216.   set the scroll of cd fld "Scroll3" to thumb * Scale3
  217.   unlock screen
  218. end mouseEnter
  219.  
  220. on trackScroll
  221.   global ScrollValue, Scale1, Scale2, Scale3
  222.   
  223.   lock screen
  224.   set the scroll of cd fld "Scroll1" to ScrollValue * Scale1
  225.   set the scroll of cd fld "Scroll2" to ScrollValue * Scale2
  226.   set the scroll of cd fld "Scroll3" to ScrollValue * Scale3
  227.   unlock screen
  228. end trackScroll
  229.  
  230. on initBar
  231.   global Scale1, Scale2, Scale3, Range, Page
  232.   
  233.   put the textHeight of cd fld "Scroll1" into Scale1
  234.   put the textHeight of cd fld "Scroll2" into Scale2
  235.   put the textHeight of cd fld "Scroll3" into Scale3
  236.   put the number of lines in cd fld "Scroll1" into lnum
  237.   put the scroll of cd fld "Scroll1" into snum
  238.   put the height of cd fld "Scroll1" into height
  239.   put lnum - trunc(height/Scale1) into Range
  240.   put lnum - range into Page
  241.   put round(snum/Scale1) into thumb
  242.   put ScrollBar(false, true, true, 0, Range, thumb, -1) into thumb
  243. end initBar